#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_

#include <QMainWindow>

class QAction;
class QLabel;
class QLineEdit;
class QDateEdit;
class QWidget;
class QGridLayout;
class QStackedLayout;
class QRadioButton;
class QButtonGroup;
class QGroupBox;
class QPushButton;
class QString;
class QListWidget;
class QComboBox;
class QTimeEdit;

class MainWindow : public QMainWindow{
	
	Q_OBJECT
	
	public:
		MainWindow(int a);

	private slots:
		void loadCrearCompetencia();
		void loadAgregarEquipo();
		void loadAltaTrofeo();
		void loadVerCompetencia();
		void loadEliminarCompetencia();
		void loadAltaArbitro();
		void loadAltaCancha();
		void loadAgregarAdministrador();
		void cleanCentralArea();
		void validateInsert();
		void showAvailableChampTrophy();
		void showAvailableGolTrophy();
		void showAvailableCompetition();
		void asignChampTrophy();
		void asignGolTrophy();
		void asignTeamtoCompetition();
		void addPlayer();
		void createUser();
		
	private:
		/*En general, solo es necesario declarar explicitamente los widgets que necesitaremos de manera global
		 * en toda la clase, como los QLineEdit de los que necesitamos el texto que el usuario les coloque.Mas ampliamente:
		 * todos aquellos widgets que reciban informacion del usuario.  
		 */
		void createActions();
		void createMenu();
		void createStackedLayouts();
		void insertTrofeo();
		void insertCompetencia();
		void llenaDorsales();
		void insertJugador();
		void insertUsuario();
		bool isFull(QString,int);
		void insertEquipo();
		void insertArbitro();
		void insertCancha();
		void insertAdministrador();
		void clearemAll();
		QMenu *administracion, *competencias, *help,*about;
		QAction *crearCompetencia;
		QAction *agrEquipo;
		QAction *altaTrofeo;
		QAction *verCompetencia;
		QAction *elimCompetencia;
		QAction *altaCancha,*altaArbitro,*altaAdmin,*salir;
		QLabel *nombreCompetenciaLabel;
		QLabel *fechaIniLabel;
		QLabel *tipoCompetenciaLabel;
		QLabel *trofCampLabel;
		QLabel *trofGolLabel;
		QLabel	*cupoCompetenciaLabel;
		QLabel *cuotaCompetenciaLabel;
		QLineEdit *nombreCompetencia,*descrTrofeo,*precioTrofeo,*cupoCompetencia,*cuotaCompetencia;
		QDateEdit *fechaIni;
		QRadioButton *tipoTorneo; 
		QRadioButton *tipoLiga;
		QLabel *descrTrofeoLabel,*precioTrofeoLabel,*tipoTrofeoLabel;
		QRadioButton *goleador,*campeon;
		//QLineEdit
		QPushButton *trofeoCamp,*trofeoGol;
		QButtonGroup *bgroup;
		QGroupBox *gbox;
		QPushButton *ok, *cancel;
		QString auxAction;
		QWidget *mainWidget, *activeArea;
		QStackedLayout *centralArea;
		QGridLayout *competencia;
		QListWidget *listaTrofeosCamp,*listaTrofeosGol;//asignar trofeo a competencia
		QListWidget *listaCompetencias,*jugadores;		
		QList<int> idTrofeosCamp,idTrofeosGol;
		QList<QString> nombreCompet;
		int idTrofeoCampAsig,idTrofeoGolAsig;//Identificador del trofeo a asignar
		QString nombreCompAsig;//nombre de la competencia para inscribir equipo
		QLineEdit *nombreEquipo;
		QPushButton *competenciaEquipo,*addJugador,*representanteEquipo;
		QLineEdit *nombreJugador,*calleJugador,*coloniaJugador,*delJugador,*telJugador;
		QComboBox *dorsal;
		QList<int> dorsales;
		QLineEdit *user,*pass;
		QDialog *cUser, *aPlayer;
		QLineEdit *nombreArbitro,*coloniaArbitro,*calleArbitro,*delArbitro,*telArbitro;
		QTimeEdit *horaInicioCancha,*horaFinCancha;
		QLineEdit *userAdm,*passAdm;
		
		
				

};




#endif /*MAINWINDOW_H_*/
